

package com.hexinfo.dmpro.sparing.model;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.NotEmpty;
import java.util.Date;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.time.LocalDate;

/**
 * 同步规则配置表
 *
 * @author yemw
 * @date 2023-09-08 17:45:29
 */
@Data
@TableName("TD_SYNC_RULE_CONF")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "同步规则配置表")
@Validated
public class SyncRuleConf extends Model<SyncRuleConf> {
private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @TableId(type= IdType.ASSIGN_UUID)
    @ApiModelProperty(value="ID")
    private String id;
    /**
     * 同步规则名称
     */
    @ApiModelProperty(value="同步规则名称")
    @NotEmpty(message = "同步规则名称不能为空")
    private String syncRuleName;
    /**
     * 非分区/分区
     */
    @ApiModelProperty(value="非分区/分区")
    private String isPart;
    /**
     * 有时间分区/无时间分区
     */
    @ApiModelProperty(value="有时间分区/无时间分区")
    private String isTimePart;
    /**
     * 所属源名称
     */
    @ApiModelProperty(value="所属源名称")
    private String sourceName;
    /**
     * 库名白规则(多个逗号隔开)
     */
    @ApiModelProperty(value="库名白规则(多个逗号隔开)")
    private String baseNameWhite;
    /**
     * 库名黑规则(多个逗号隔开)
     */
    @ApiModelProperty(value="库名黑规则(多个逗号隔开)")
    private String baseNameBlack;
    /**
     * 表名白规则(多个逗号隔开)
     */
    @ApiModelProperty(value="表名白规则(多个逗号隔开)")
    private String tableNameWhite;
    /**
     * 表名黑规则(多个逗号隔开)
     */
    @ApiModelProperty(value="表名黑规则(多个逗号隔开)")
    private String tableNameBlack;
    /**
     * 分区名白规则(多个逗号隔开)
     */
    @ApiModelProperty(value="分区名白规则(多个逗号隔开)")
    private String partNameWhite;
    /**
     * 分区名黑规则(多个逗号隔开)
     */
    @ApiModelProperty(value="分区名黑规则(多个逗号隔开)")
    private String partNameBlack;
    /**
     * 分区值白规则
     */
    @ApiModelProperty(value="分区值白规则")
    private String partValueWhite;
    /**
     * 分区值黑规则
     */
    @ApiModelProperty(value="分区值黑规则")
    private String partValueBlack;
    /**
     * 同步范围 同步多久时间的数据 0为全量 数值为年数
     */
    @ApiModelProperty(value="同步范围 同步多久时间的数据 0为全量 数值为年数")
    private Integer syncRange;
    /**
     * 同步方式 (时间窗口同步,源标识同步)
     */
    @ApiModelProperty(value="同步方式 (时间窗口同步,源标识同步)")
    private String syncMode;
    /**
     * 执行频率 24小时执行还是立刻执行  立刻执行为：0
     */
    @ApiModelProperty(value="执行频率 24小时执行还是立刻执行  立刻执行为：0")
    private Integer exeFrequency;
    /**
     * 是否默认规则
     */
    @ApiModelProperty(value="是否默认规则")
    private String isDefaultRule;
    /**
     * 创建人
     */
    @ApiModelProperty(value="创建人")
    @TableField(fill = FieldFill.INSERT)
    private String createBy;
    /**
     * 创建时间
     */
    @ApiModelProperty(value="创建时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
    private Date createTime;
    /**
     * 更新人
     */
    @ApiModelProperty(value="更新人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String lastUpdateBy;
    /**
     * 更新时间
     */
    @ApiModelProperty(value="更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
    private Date lastUpdateTime;
    /**
     * 删除标识
     */
    @ApiModelProperty(value="删除标识")
    @TableField(fill = FieldFill.INSERT)
    private String del;
    }
